from fastapi import FastAPI, APIRouter

# 导入Request上下文对象，用来在前后台之间传递参数
from starlette.requests import Request

# 导入jinja2模板引擎对象，用于后续使用
from starlette.templating import Jinja2Templates

router = APIRouter(
    #prefix="/auth",
    tags=["auth"],
    #dependencies=[Depends(get_token_header)],
    responses={404: {"description": "Not found"}},
)

# 实例化一个模板引擎对象，指定模板所在路径
templates=Jinja2Templates(directory='templates')

@router.get('/login')
async def index(request:Request):
    ctx = {
        'request': request,
        'name':'silly'
    }
    # 返回一个模板对象，同时使用上下文中的数据对模板进行渲染
    return templates.TemplateResponse(name='auth/login.html',context=ctx)

@router.get('/test/{info}')
# 在视图函数中传入request对象，用于在模板对象中传递上下文（同时接收路径参数info，将其传递到上下文中）
async def test(request:Request,info:str):
    ctx = {
        'request': request,
        'info':info
    }
    return templates.TemplateResponse(name='test.html',context=ctx)

